﻿using Bot.Domain.Entities;
using Bot.Domain.Enum;
using System;
using System.Collections.Generic;
using System.Text;

namespace Bot.Domain.Bo
{
    public class ChatbotUpdateBo
    {
        public Guid Id { get; set; }
        public int SiteId { get; set; }
        public string Language { get; set; }
        public EnumBotType EngineType { get; set; }
        public Guid? AvatarId { get; set; }
        public string DialogFlowProjectId { get; set; }
        public string Name { get; set; }
        public Guid? ThirdPartyWebhookId { get; set; }
        public bool IsTrained { get; set; }
        public string MessageWhenNotHelpful { get; set; }
        public bool? IfIncludeContactAgentOptionWhenNotHelpful { get; set; }
        public string MessageWhenProvidingPossibleAnswer { get; set; }
        public int? ConsecutiveTimesOfPossibleAnswers { get; set; }
        public string MessageAfterVisitorChooseToContactAgent { get; set; }
        public string ContactAgentButtonTextWhenOnline { get; set; }
        public string ContactAgentButtonTextWhenOffline { get; set; }
        public string FormSubmitButtonText { get; set; }
        public string FormCancelButtonText { get; set; }
        public string FormConfirmButtonText { get; set; }
        public decimal? HighConfidenceScore { get; set; }
        public decimal? NoAnswerScore { get; set; }
        public string OwnBotConfig { get; set; }

        public virtual ImageUpdateBo Avatar { get; set; }
        public virtual ICollection<GreetingMessageInChannelUpdateBo> GreetingMessageInChannels { get; set; }
        public virtual ICollection<NoAnswerMessageInChannelUpdateBo> NoAnswerMessageInChannels { get; set; }
        public virtual ICollection<MessageAfterSeveralConsecutivePossibleAnswersInChannelUpdateBo> MessageAfterSeveralConsecutivePossibleAnswersInChannels { get; set; }
        public virtual WebhookUpdateBo ThirdPartyWebhook { get; set; }

    }
}
